#ifndef SERVERCACHE_H_
#define SERVERCACHE_H_
#include <map>
#include <string>
#include <iostream>
#include <utility>
#include "serverMutex.h"
typedef std::pair <std::string, std::string> tDato;

class Cache {
private:
	std::map<std::string, std::string> cache;
	Mutex mutex;
public:
	/*Dada una clave y su valor a insertar como un par de string, devuelve 0 si
	 * la clave no existia en la cache y logro insertarla o 1 si la clave
	 *  ya existia en la cache.*/
	bool insertar(const tDato& dato);

	/* Dada una clave a consultar, devuelve el string correspondiente al valor
	 * asociado a dicha clave (en caso de que exista) o un string vacio en caso
	 * contrario.*/
	std::string consultar(const std::string& clave);

	/* Dada una clave a eliminar, devuelve 1 si existia un elemento asociado
	 * a esa clave y logro borrarlo o 0 en caso contrario.*/
	bool eliminar(const std::string& clave);
};

#endif /* SERVERCACHE_H_ */
